﻿namespace StationDataHub.Models.DTO;

/// <summary>
/// 充电设备接口状态（对应协议5.6 ConnectorStatusInfo）
/// </summary>
public class ConnectorStatusInfo
{
    /// <summary>
    /// 充电设备接口编码（同一运营商内唯一，必填，最大26字符）
    /// </summary>
    public string ConnectorID { get; set; } = string.Empty;

    /// <summary>
    /// 充电设备接口状态（必填，整型枚举：0=离网，1=空闲，2=占用(未充电)，3=占用(充电中)，4=占用(预约锁定)，255=故障）
    /// </summary>
    public ConnectorStatusEnum Status { get; set; }

    /// <summary>
    /// 车位状态（非必填，整型枚举：0=未知，10=空闲，50=占用）
    /// </summary>
    public ParkStatusEnum? ParkStatus { get; set; }

    /// <summary>
    /// 地锁状态（非必填，整型枚举：0=未知，10=已解锁，50=已上锁）
    /// </summary>
    public LockStatusEnum? LockStatus { get; set; }

    /// <summary>
    /// 剩余电量SOC（单位%，非必填，默认0，保留小数点后1位）
    /// </summary>
    public decimal? SOC { get; set; } = 0;

    /// <summary>
    /// 异常原因（状态为255时必填，整型枚举：1=BMS通信异常，2=直流母线输出过压告警，3=直流母线输出欠压告警，4=蓄电池充电过流告警，17=充电模块故障，18=充电模块风扇故障，19=充电模块过温告警，20=充电模块交流输入告警，34=交流接触器故障，35=交流输出过流告警，36=交流输入过压告警，37=交流输入欠压告警，38=交流输出过流保护动作告警）
    /// </summary>
    public ConnectorFaultTypeEnum? FaultType { get; set; }

    /// <summary>
    /// 充电时长（单位分钟，非必填）
    /// </summary>
    public int? Edtime { get; set; }

    /// <summary>
    /// 充电电量（单位kWh，非必填，保留小数点后3位）
    /// </summary>
    public decimal? Edpq { get; set; }
}